package com.fh.reflection.class_;

import com.fh.Cat;

/**
 * @author 方小勤
 * @version 1.0~
 */
public class Class01 {
    public static void main(String[] args) throws ClassNotFoundException {
        //1. Class 也是类，因此也继承 Object 类\
        //2. Class 类对象不是 new 出来的，而是系统创建的
        //1) 传统 new 对象
//        Cat cat = new Cat();
        /*
        public Class<?> loadClass(String name) throws ClassNotFoundException {
            return loadClass(name, false);
        }
         */

        //2) 反射方式
        Class<?> cls = Class.forName("com.fh.Cat");
        /*
        public Class<?> loadClass(String name) throws ClassNotFoundException {
            return loadClass(name, false);
        }
        */
        //ClassLoader类，仍然是通过 ClassLoader 类加载Cat类的Class对象

        //3. 对于某个类的 Class 类对象，在内存中只有一份，因为类只加载一次
        Class cls2 = Class.forName("com.fh.Cat");
        System.out.println(cls.hashCode());
        System.out.println(cls2.hashCode());
        Class cls3 = Class.forName("com.fh.Dog");
        System.out.println(cls3.hashCode());
    }
}
